The invention relates to data storage of a distributed storage subsystem.
Enterprises often have storage subsystems that use large arrays of physical storage devices to provide shared data storage for host devices. Typically, the host devices are isolated so that they are unaware of the complete physical layout of data storage of the storage subsystem. Instead, the host devices know the logical layout of data storage.
By isolating host devices from the physical layout of the storage subsystem, host applications become more portable. The host applications can execute on host devices using storage subsystems having different physical layouts. But, such host devices are also unaware of the workloads of the individual physical storage devices.
Since the host devices do not know the workloads of physical storage devices, they cannot change their storage usage patterns to compensate for overloading particular physical storage devices. Overloading a physical storage device can cause the device""s physical drives to operate slowly. Slow physical drives lead to long access times and degraded performance of the host applications that use the storage device.
In a first aspect, the invention provides a method of balancing workloads of storage devices of a storage subsystem. The method includes reading a mailbox to obtain control parameters and collecting historical data on numbers of accesses to storage volumes of the storage devices. The control parameters are written in the mailbox by host devices. The method also includes selecting data swaps that lead to better-balanced workloads of storage devices based on the historical data. Either the act of selecting or the act of collecting depends on the control parameters.
In a second aspect, the invention provides a storage subsystem that provides data storage to a plurality of host devices. The storage subsystem includes a plurality of data storage devices accessible to host devices, a data storage medium storing a mailbox, and a computer able to read the mailbox. The mailbox stores control parameters that are rewritable by the host devices. The computer stores an executable program of instructions for a method of data swapping between storage volumes of the storage subsystem. The computer reads the control parameters to initialize the program.
In a third aspect, the invention provides a storage medium storing an executable program of instructions. The instructions cause a computer to perform the above-described method of balancing workloads of storage devices of a storage subsystem.